op {
  graph_op_name: "RetrieveAllTPUEmbeddingParameters"
  visibility: HIDDEN
  out_arg {
    name: "parameters"
    description: <<END
 A list of tensors, one for each embedding table, containing the
stored embedding table parameters.
END
  }
  out_arg {
    name: "auxiliary1"
    description: <<END
A list of tensors, one for each embedding table, containing the
first auxiliary optimization parameter stored. Elements are
present in the list, but have zero size, for unused optimization parameters
(based on the algorithm in use for each table).
END
  }
  out_arg {
    name: "auxiliary2"
    description: <<END
A list of tensors, one for each embedding table, containing the
second auxiliary optimization parameter stored. Elements are
present in the list, but have zero size, for unused optimization parameters
(based on the algorithm in use for each table).
END
  }
  out_arg {
    name: "auxiliary3"
    description: <<END
A list of tensors, one for each embedding table, containing the
third auxiliary optimization parameter stored. Elements are
present in the list, but have zero size, for unused optimization parameters
(based on the algorithm in use for each table).
END
  }
  out_arg {
    name: "auxiliary4"
    description: <<END
A list of tensors, one for each embedding table, containing the
fourth auxiliary optimization parameter stored. Elements are
present in the list, but have zero size, for unused optimization parameters
(based on the algorithm in use for each table).
END
  }
  out_arg {
    name: "auxiliary5"
    description: <<END
A list of tensors, one for each embedding table, containing the
fifth auxiliary optimization parameter stored. Elements are
present in the list, but have zero size, for unused optimization parameters
(based on the algorithm in use for each table).
END
  }
  out_arg {
    name: "auxiliary6"
    description: <<END
A list of tensors, one for each embedding table, containing the
six auxiliary optimization parameter stored. Elements are
present in the list, but have zero size, for unused optimization parameters
(based on the algorithm in use for each table).
END
  }
  out_arg {
    name: "auxiliary7"
    description: <<END
A list of tensors, one for each embedding table, containing the
seventh auxiliary optimization parameter stored. Elements are
present in the list, but have zero size, for unused optimization parameters
(based on the algorithm in use for each table).
END
  }
  attr {
    name: "NumTables"
    description: <<END
The number of embedding tables.
END
  }
  attr {
    name: "config"
    description: <<END
An TPUEmbeddingConfiguration proto describing the
table parameters being loaded, serialized to a string.
END
  }
  attr {
    name: "num_shards"
    description: <<END
Number of shards into which the embedding tables are divided.
END
  }
  attr {
    name: "shard_id"
    description: <<END
Identifier of shard for this operation.
END
  }
  summary: "An op that retrieves optimization parameters from embedding to host memory."
  description: <<END
An op that retrieves optimization parameters from embedding to host memory.
Must be preceded by a ConfigureTPUEmbeddingHost op that sets up the correct
embedding table configuration. For example, this op is used to retrieve updated
parameters before saving a checkpoint.  For Adagrad, auxiliary1 will contain the
accumulators after running this op. For SGD, all of the auxiliary* values will
be empty (0x0 tensors for that table). For FTRL, auxiliary1 will contain the
accumulators and auxiliary2 will contain the linear terms. For ADAM, auxiliary1
will contain the momenta and auxiliary2 will contain the velocities.
END
}
